/*  This file is part of CASpp.

    CASpp is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    CASpp is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with CASpp.  If not, see <http://www.gnu.org/licenses/>.

    Copyright 2014 Jérome LAURENS

    See https://code.google.com/p/idalgo/

*/

#include "types.h"

CASPP_NS_BEGIN

namespace Type {

std::string name(const Unary type) {
    switch (type) {
    case kUNDEF: return "Undefined";//same as kAUTO
    case kBOOL: return "Boolean";
    case kSTR: return "String";
    case kVECT: return "Vector";
    case kMAP: return "Map";
    case kINT: return "Integer";
    case kRAT: return "Rational";
    case kREAL: return "Real";
    case kCPLX: return "Complex";
    case kROOT: return "Root";
    case kVAR: return "Variable";
    case kSYMB: return "Symbol";
    case kFUNC: return "Function";
    case kMOD: return "Modulo";
    case kUSER: return "User";
    case kEQW: return "EQW";
    case kGFX: return "GFX";
    case kPTR: return "Pointer";
    case kEXT: return "Extension";
    case kPOLY: return "Polynomial";
    case kSP1: return "Sparse Polynomial";
    default: return "Undefined";
    }
}

}

CASPP_NS_END

